草庐IT

JavaBeans 替代品?

全部标签

c# - C# 中 C++ 程序员的指针替代

我主要是一名C++编码员,几年没有接触过c#(所以,如果我问的问题对我来说可能是脑放屁,请原谅我)。背景信息:我正在编写一个文件组织实用程序(只是为了好玩,并帮助清理我计算机上的重复项)。我已经能够对文件和文件进行MD5校验和,并在各个子目录中找到重复的文件,有时具有相同的文件名,有时则不同(虽然总是相同的文件类型)。我最初是通过仅使用文件路径字符串和Winform对象、Arraylist、“MainFrom”代码中的数组作为概念证明来做到这一点的。代码真的很难看,看着它我已经很困惑了,所以它绝对不可维护。所以我想出一个更优雅和明智的设计是将其存储为一个对象,该对象将具有简单的内容,例

c++ - 有没有插入然后排序的替代方法

如果我有vectorfoo和vectorbar两者都已排序,我想将它们合并到foo中使得最终结果排序,标准是否为我提供了执行此操作的方法?显然我能做到:foo.insert(foo.end(),bar.begin(),bar.end());sort(foo.begin(),foo.end());但我希望有一个一步算法来完成这个。 最佳答案 使用std::inplace_merge可能会更快而不是std::sort。如果有额外的可用内存,它具有线性复杂度,否则它会退回到NlogN。automiddle=foo.insert(foo.e

c++ - 替代 ->operator()

如果objp是指针,是否有比调用objp->operator()(x,y,z)更好的语法?&objp(x,y,z)不起作用。由于所有的符号,这很难用谷歌搜索。抱歉,这很愚蠢。 最佳答案 您可以使用(*objp)(x,y,z);作为替代。 关于c++-替代->operator(),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/31757675/

c++ - 使用命名空间作为模板参数的替代方法

我知道我不能将命名空间用作模板参数。但是,我正在尝试实现与此类似的行为:templatevoidfoo(T::X*x){T::bar(x);}除了T是命名空间而不是结构或类。实现与我期望的结果最相似的最佳方法是什么? 最佳答案 ExceptTisanamespaceratherthanastructoraclass.WhatisthebestwaytoachievethemostsimilarresulttowhatIamexpecting?根本不要提到T。templatevoidfoo(X*x){bar(x);}ADL将始终从定义

c - Boost.Program_options 的良好 C 替代方案?

用C编写的任何替代Boost.Program_options的好选择?鉴于它能够解析:短选项,如-h像--help--input-file这样的长选项解析重复的键/选项接受键值对:--mysql=/usr/lib解析环境变量和XML/INI文件是可选的。 最佳答案 如果您同意GPL许可证,您需要GNUgetopt. 关于c-Boost.Program_options的良好C替代方案?,我们在StackOverflow上找到一个类似的问题: https://st

c++ - 比使用流保存 boost 随机生成器状态更快的替代方法

我需要能够保存/加载此boost随机生成器的状态:boost::variate_generator>generator;我是这样做的:std::ostringstreamcontent;contentgenerator.engine();问题是,这非常慢,难道没有其他方法来存储它吗?(或以native格式访问随机生成器数据)。这段代码封装在我们的RandomGenerator类中,所以它可能有点讨厌。 最佳答案 一些方法,都非常hacky:只需使用如下方式获取原始字节:typedeftypenamestd::aligned_stor

C++11 替代 boost::checked_delete

作为前向声明的重度用户,我喜欢我的类在销毁时完成。为确保这一点,我将析构函数设为私有(private)并与boost::checked_delete成为friend:#includestructMyClass{//MyClass'sinterfaceprivate:~MyClass(){/*something*/}friendvoidboost::checked_delete(MyClass*x);};在C++11中,std::default_delete还在销毁时检查完整性。然而,我无法实现与上面相同的行为:#includestructMyClass{//MyClass'sinter

c++ - 有条件地启用替代赋值运算符

我正在尝试有条件地实例化一个额外的赋值运算符。下面的代码在clang中运行良好,但在gcc4.7中却不行。我遇到的问题似乎与此处提出的问题非常相似:std::enable_iftoconditionallycompileamemberfunction下面说明了我遇到的问题:#includetemplatestructStrangerTypeRules;templatestructX;templatestructStrangerTypeRules{typedefunsignedtype;};templatestructStrangerTypeRules{typedefXtype;};te

c++ - 如何编写C .so 库来替代现有的C++ .so 库?

让我解释一下这个场景。我们有一个遗留的C++编译的.so库。此库中的函数是使用extern"c"{}声明的,因此C和C++程序都可以使用该库,另外,出于某种原因,它是使用--static创建的-libgcc选项。这个旧库很旧,很难维护。现在我们已经设法用C语言编写了它的替代品。假设旧库称为libfoo.so(old),新库称为libfoo.so(new)。对于给定的bar.o,它可以与旧的或新的libfoo.so链接以创建可执行文件,例如bar.exe。但是bar.exe只能使用它之前链接的同一个.so库运行,换句话说,这两个库不能相互交换。编辑#1:我创建了一个名为libfoo.so

c++ - 替代 CMake

我在visualstudio中使用CMake构建规则来预处理我的文件,然后再将它们提交给编译器,但我的客户不喜欢它。是否有任何CMake替代方法或方法来预处理我的文件并将它们集成到visualstudio中? 最佳答案 据我了解,您正在使用CMake生成您手动创建的VS项目使用的文件。无论出于何种原因,您的VS项目的客户都不喜欢CMake。据推测,您已经通过创建调用CMake以生成项目中的文件的自定义构建步骤来连接它,或者作为项目上的构建事件,或者作为项目中各种文件的自定义构建步骤,例如脚本的输入。VS允许您运行任意一组命令作为构建